package com.robot.base.common.api;

import com.qihang.annotations.ApiFactory;
import com.robot.base.model.DicinfoDataDTOBean;
import com.robot.base.model.UploadFileBean;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import me.goldze.mvvmhabit.http.BaseResponse;
import okhttp3.MultipartBody;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.QueryMap;

@ApiFactory(value = GlBaseApi.class)
public interface CommonService {
    @Multipart //这里用Multipart
    @POST("/commons/api/upload")
    Observable<BaseResponse<UploadFileBean>> uploadFile(@Part MultipartBody.Part files,
                                                        @QueryMap Map<String, String> params);

    /**
     * 父级id。可选值：UserStatus-用户状态；OperateUserStatus-用户启用状态；
     * NodeTypes-设备类型，AccessProtocols-接入协议，DeviceStatus-设备状态，
     * AlarmStatus-告警状态，ProtocolTypes-协议类型，CertTypes-证书类型，
     * GatewayProtocolTypes-网关协议，SignatureMethods-签名方式，
     * FlowWays-转发方式，DataSourceTypes-数据源类型，TriggerModes-触发方式，
     * NoticeTypes-通知类型，PlatformTypes-平台类型，EquipmentStatus-设备台账状态，
     * OperatorCodes-运算符，Educations-学历，ProfessionalCertTypes-证件类型，
     * FontFamily-字体,问题类型-QuestionTypes，问题列表的状态-QuestionStatus，
     * 待办工单的状态-ToDoQuestionStatus，工单记录的状态-ClosedQuestionStatus，
     * AutoEquipLogTypes-设备记录类型（自动生成），EquipmentRecordTypes-设备记录类型（手动填写）
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("/commons/api/selectDicinfoListByCode")
    Observable<BaseResponse<List<DicinfoDataDTOBean>>> selectDicinfoListByCode(@FieldMap Map<String, String> map);
}
